// 生成树形结构的函数
function generateTree() {
    $.ajax({
        "url": "menu/get/whole/tree",
        "type": "post",
        "dataType": "json",
        "success": function (response) {
            if (response.operationResult == "SUCCESS") {
                // 2.创建 JSON 对象用于存储对 zTree 所做的设置
                var setting = {
                    "view": {
                        "addDiyDom": myAddDiyDom,
                        "addHoverDom": myAddHoverDom,
                        "removeHoverDom": myRemoveHoverDom
                    },
                    "data": {
                        "key": {
                            "url": "yztljq"
                        }
                    }
                };
                // 3.从响应体中获取用来生成树形结构的 JSON 数据
                var zNodes = response.queryData;
                // 4.初始化树形结构
                $.fn.zTree.init($("#treeDemo"), setting, zNodes);
            }
            if (response.operationResult == "FAILED") {
                layer.msg(response.operationMessage);
            }
        },
        "error": function (response) {
            layer.msg(response.status + "  " + response.statusText);
        }
    });
}

//修改原图标为自己的图标
function myAddDiyDom(treeId, treeNode) {
    // treeId 是整个树形结构附着的 ul 标签的 id
    // treeNode当前树形节点的全部的数据，包括从后端查询得到的 Menu 对象的全部属性
    // 例子：treeDemo_7_ico
    // 提示：“ul 标签的 id_当前节点的序号”部分可以通过访问 treeNode 的 tId 属性得到
    var spanId = treeNode.tId + "_ico";
    // 根据控制图标的 span 标签的 id 找到这个 span 标签
    // 删除旧的 class // 添加新的 class
    $("#" + spanId).removeClass().addClass(treeNode.icon);
}

//鼠标移入显现按钮
function myAddHoverDom(treeId, treeNode) {
    //span的上一个节点a标签的id
    var anchorId = treeNode.tId + "_a";
    //生成span的id
    var btnGroupId = treeNode.tId + "_btnGrp";
    //判断是否添加过按钮组
    if ($("#" + btnGroupId).length > 0) {
        return;
    }

    // 准备各个按钮的 HTML 标签
    var addBtn = "<a id='" + treeNode.id + "' class='btn btn-info dropdown-toggle btn-xs addBtn' style='margin-left:10px;padding-top:0px;' href='#' title='添加子节点'>&nbsp;&nbsp;<i class='fa fa-fw fa-plus rbg '></i></a>";
    var removeBtn = "<a id='" + treeNode.id + "' class='btn btn-info dropdown-toggle btn-xs removeBtn' style='margin-left:10px;padding-top:0px;' href='#' title=' 删 除 节 点 '>&nbsp;&nbsp;<i class='fa fa-fw fa-times rbg '></i></a>";
    var editBtn = "<a id='" + treeNode.id + "' class='btn btn-info dropdown-toggle btn-xs editBtn' style='margin-left:10px;padding-top:0px;' href='#' title=' 修 改 节 点 '>&nbsp;&nbsp;<i class='fa fa-fw fa-edit rbg '></i></a>";

    var level = treeNode.level;

    var btnHTML = "";
    switch (level) {
        case 0 :
            btnHTML = addBtn;
            break;
        case 1 :
            btnHTML = addBtn + editBtn;
            if (treeNode.children.length == 0) {
                btnHTML += removeBtn;
            }
            break;
        case 2:
            btnHTML = removeBtn + editBtn;
            break;
    }

    //在a标签后加入span标签
    $("#" + anchorId).after("<span id='" + btnGroupId + "'>" + btnHTML + "</span>");
}

//鼠标移出移出按钮
function myRemoveHoverDom(treeId, treeNode) {
    var btnGroupId = treeNode.tId + "_btnGrp";
    $("#" + btnGroupId).remove();
}